perm filename COMMON[F86,JMC]1 blob
sn#827425 filedate 1986-11-02 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00010 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 common[f86,jmc] Common sense database
C00003 00003 missionaries and cannibals, boats
C00004 00004 traffic lights and towers
C00005 00005 Dogs and trash cans:
C00006 00006 air travel
C00007 00007 buying and selling
C00008 00008 getting information
C00009 00009 taxonomy
C00011 00010 Blocks world:
C00012 ENDMK
C⊗;
common[f86,jmc] Common sense database
Some concrete problems:
missionaries and cannibals, boats
In what form should the facts about using a boat be in a general
common sense database.
place x ∧ place y ∧ connected(x,y,water) ⊃ possible using(boat,go(x,y))
⊃ maybe ∃a b.action a ∧ is(a,going) ∧ origin a = x ∧ dest a = y ∧ vehicle a = b
∧ boat b.
Is there a boat that is used for going from x to y?
storms, leaks, and other obstacles
boats ⊂ vehicles
traffic lights and towers
conceptual towers and real towers
Dogs and trash cans:
air travel
buying and selling
getting information
Normally a person knows the relevant facts.
taxonomy
Taxonomy will be a small part of the common sense database.
Some other AI systems give taxonomy, under the name ``inheritance
hierarchy'' a large place, and indeed there are difficulties in
getting it right.
``A boat is a vehicle'' is an example of a taxonomic fact.
We can refer to Linnaean taxonomy as one level, e.g. ``birds
are animals'' but not ``"animal" is a concept''.
Our taxonomy should be multi-level.
It looks like we should write
(1) boat < vehicle
where boat and vehicle are names of concepts. We will have
set-of(boat) as a name for the set of boats and (1) will have
the consequence
(2) set-of(boat) ⊂ set-of(vehicle).
Is there anything special about extending taxonomy to relationships?
(3) husband < spouse.
Blocks world:
cause(move(x,l),at(x,l))
cause(move(x,l),loc x = l)
effect(move(x,l)) = (loc x = l)
meaning(loc x,c1) = country x
meaning(loc x,c2) = galaxy x
meaning(loc x,c3) = <atom x is attached to>
There are two possibilities, but they may be compatible.
does(person,move(x,l))
doer(<action>) = <person>
action(<action>) = move(x,l)
occurs(<action>,s)